Browse Source

update

tags/v0
zhaohe 10 months ago
parent
commit
e4db2fa1ac
  1. BIN
      app.db
  2. 24
      src/main/java/a8k/service/app/devicedriver/calibration/Hbot2DCodeScanPosCalibration.java
  3. 48
      src/main/java/a8k/service/app/devicedriver/calibration/ReactionPlatesTransmitControlerCalibration.java
  4. 12
      src/main/java/a8k/service/app/devicedriver/ctrl/ReactionPlatesTransmitCtrl.java
  5. 139
      src/main/java/a8k/service/app/devicedriver/pos/Hbot2DCodeScanPos.java
  6. 1
      src/main/java/a8k/service/app/devicedriver/pos/HbotConsumablePosMgr.java
  7. 1
      src/main/java/a8k/service/app/devicedriver/pos/HbotFixPosMgr.java
  8. 1
      src/main/java/a8k/service/app/devicedriver/pos/HbotSamplePosMgr.java
  9. 11
      src/main/java/a8k/service/app/devicedriver/pos/OptModulePosMgr.java
  10. 64
      src/main/java/a8k/service/app/devicedriver/pos/PlatesBoxPosMgr.java
  11. 62
      src/main/java/a8k/service/app/devicedriver/pos/TubeFeedingModulePosMgr.java
  12. 1
      src/main/java/a8k/service/app/devicedriver/pos/TubeHolderParamMgr.java
  13. 44
      src/main/java/a8k/service/app/devicedriver/pos/TubePreProcesPosMgr.java
  14. 30
      src/main/java/a8k/service/app/devicedriver/pos/TurntablePosMgr.java
  15. 31
      src/main/java/a8k/service/db/LowerDeviceParameterDBService.java
  16. 7
      src/main/java/a8k/service/db/utils/PosParameterReader.java

BIN
app.db

24
src/main/java/a8k/service/app/devicedriver/calibration/Hbot2DCodeScanPosCalibration.java

@ -41,29 +41,9 @@ public class Hbot2DCodeScanPosCalibration {
@ExtApiFn(name = "获取所有坐标",group = "基础", order = 1) @ExtApiFn(name = "获取所有坐标",group = "基础", order = 1)
public ObjectNode getPoss() throws AppException {
ObjectMapper mapper = new ObjectMapper();
ObjectNode node = new ObjectMapper().createObjectNode();
ArrayNode PBScanPos = node.putArray("PBScanPos");
ArrayNode LittBSScanPos = node.putArray("LittBSScanPos");
ArrayNode LarBSScanPos = node.putArray("LarBSScanPos");
for (int i = 0; i < 6; i++) {
PBScanPos.add(mapper.valueToTree(hbot2DCodeScanPos.getPBScanPosX(i).toString()));
}
for (int i = 0; i < 6; i++) {
LittBSScanPos.add(mapper.valueToTree(hbot2DCodeScanPos.getLittBSX(i).toString()));
}
for (int i = 0; i < 6; i++) {
LarBSScanPos.add(mapper.valueToTree(hbot2DCodeScanPos.getLarBSX(i).toString()));
}
return node;
public Object getParams() throws AppException {
return hbot2DCodeScanPos.getParams();
} }
// 测试工具 // 测试工具
@ExtApiFn(name = "归零", group = "测试工具", order = 11) @ExtApiFn(name = "归零", group = "测试工具", order = 11)
public void deviceReset() throws AppException { public void deviceReset() throws AppException {

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

@ -62,8 +62,6 @@ public class ReactionPlatesTransmitControlerCalibration {
stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.OptModPullM, overtime); stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.OptModPullM, overtime);
stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.OptModScannerM, overtime); stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.OptModScannerM, overtime);
stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.IncubatorRotateCtrlM, overtime); stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.IncubatorRotateCtrlM, overtime);
} }
@ExtApiFn(name = "使能相关模块", group = "测试工具", order = 2) @ExtApiFn(name = "使能相关模块", group = "测试工具", order = 2)
@ -90,15 +88,22 @@ public class ReactionPlatesTransmitControlerCalibration {
hbotModule.enable(0); hbotModule.enable(0);
} }
@ExtApiFn(name = "读取所有设定值", group = "测试工具", order = 5)
public Map<String, Object> getPoss() {
return Map.of(
"optModulePosMgr", optModulePosMgr,
"turntablePosMgr", turntablePosMgr,
"platesBoxPosMgr", platesBoxPosMgr
);
@ExtApiFn(name = "读取板夹仓坐标", group = "测试工具", order = 5)
public Object getPlatesBoxPos() {
return platesBoxPosMgr.getParams();
}
@ExtApiFn(name = "读取光学模组坐标", group = "测试工具", order = 6)
public Object getOptModulePos() {
return optModulePosMgr.getParams();
} }
@ExtApiFn(name = "读取孵育盘坐标", group = "测试工具", order = 7)
public Object getTurntablePos() {
return turntablePosMgr.getParams();
}
// //
// 孵育盘校准 // 孵育盘校准
// //
@ -144,21 +149,30 @@ public class ReactionPlatesTransmitControlerCalibration {
// //
// 板夹仓位置 // 板夹仓位置
// //
@ExtApiFn(name = "设置板夹仓-Y轴间距", group = "板夹仓.校准", order = 200)
public void PlatesBoxPosMgr_setYSpacing(Integer spaceing) throws AppException {
platesBoxPosMgr.setYSpacing(spaceing);
}
// @ExtApiFn(name = "设置板夹仓-Y轴间距", group = "板夹仓.校准", order = 200)
// public void PlatesBoxPosMgr_setYSpacing(Integer spaceing) throws AppException {
// platesBoxPosMgr.setYSpacing(spaceing);
// }
@ExtApiFn(name = "设置板夹仓-仓0-Y轴坐标", group = "板夹仓.校准", order = 201) @ExtApiFn(name = "设置板夹仓-仓0-Y轴坐标", group = "板夹仓.校准", order = 201)
public Integer PlatesBoxPosMgr_setCh0YPos() throws AppException { public Integer PlatesBoxPosMgr_setCh0YPos() throws AppException {
stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxYM, 1); stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxYM, 1);
stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxPusherM, 1); stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxPusherM, 1);
Integer ch0YPos = stepMotorControler.stepMotorReadPosByMoveToZeroBlock(StepMotorMId.PlatesBoxYM, overtime);
platesBoxPosMgr.setCh0YPos(ch0YPos);
return ch0YPos;
Integer pos = stepMotorControler.stepMotorReadPosByMoveToZeroBlock(StepMotorMId.PlatesBoxYM, overtime);
platesBoxPosMgr.setCh0YPos(pos);
return pos;
}
@ExtApiFn(name = "设置板夹仓-仓5-Y轴坐标", group = "板夹仓.校准", order = 202)
public Integer PlatesBoxPosMgr_setCh5YPos() throws AppException {
stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxYM, 1);
stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxPusherM, 1);
Integer pos = stepMotorControler.stepMotorReadPosByMoveToZeroBlock(StepMotorMId.PlatesBoxYM, overtime);
platesBoxPosMgr.setCh5YPos(pos);
return pos;
} }
@ExtApiFn(name = "设置板夹仓-仓0-X轴到位坐标", group = "板夹仓.校准", order = 202)
@ExtApiFn(name = "设置板夹仓-仓0-X轴到位坐标", group = "板夹仓.校准", order = 203)
public Integer PlatesBoxPosMgr_setPushEndXPos() throws AppException { public Integer PlatesBoxPosMgr_setPushEndXPos() throws AppException {
stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxYM, 1); stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxYM, 1);
stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxPusherM, 1); stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxPusherM, 1);

12
src/main/java/a8k/service/app/devicedriver/ctrl/ReactionPlatesTransmitCtrl.java

@ -111,7 +111,7 @@ public class ReactionPlatesTransmitCtrl {
public void pushPlateQuick(ConsumableGroup PBCh, IncubatorPos turntablePosIndex) throws AppException { public void pushPlateQuick(ConsumableGroup PBCh, IncubatorPos turntablePosIndex) throws AppException {
trunableMoveToPushPos(turntablePosIndex); trunableMoveToPushPos(turntablePosIndex);
stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.PlatesBoxYM, platesBoxPosMgr.getCh0YPos() + PBCh.off * platesBoxPosMgr.getYSpacing(), overtime);
stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.PlatesBoxYM, platesBoxPosMgr.getChXPos(PBCh.off), overtime);
stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.PlatesBoxPusherM, platesBoxPosMgr.getPushEndXPos(), overtime); stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.PlatesBoxPusherM, platesBoxPosMgr.getPushEndXPos(), overtime);
stepMotorControler.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.PlatesBoxPusherM, overtime); stepMotorControler.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.PlatesBoxPusherM, overtime);
stepMotorControler.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.PlatesBoxYM, overtime); stepMotorControler.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.PlatesBoxYM, overtime);
@ -121,10 +121,10 @@ public class ReactionPlatesTransmitCtrl {
trunableMoveToPullPos(turntablePosIndex); trunableMoveToPullPos(turntablePosIndex);
stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.OptModScannerM, optModulePosMgr.getOptScanerScandbyPos(), overtime); stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.OptModScannerM, optModulePosMgr.getOptScanerScandbyPos(), overtime);
stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.OptModPullM, optModulePosMgr.getPullerTargetPos(), overtime); stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.OptModPullM, optModulePosMgr.getPullerTargetPos(), overtime);
// if (!canBus.getIOState(IOId.PullerMEndPPS)) {
// logger.error("pull plate fail");
// throw new AppException(A8kEcode.APPE_PULL_PLATE_FAIL);
// }
// if (!canBus.getIOState(IOId.PullerMEndPPS)) {
// logger.error("pull plate fail");
// throw new AppException(A8kEcode.APPE_PULL_PLATE_FAIL);
// }
stepMotorControler.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.OptModPullM, overtime); stepMotorControler.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.OptModPullM, overtime);
} }
@ -135,6 +135,4 @@ public class ReactionPlatesTransmitCtrl {
} }
} }

139
src/main/java/a8k/service/app/devicedriver/pos/Hbot2DCodeScanPos.java

@ -3,6 +3,7 @@ package a8k.service.app.devicedriver.pos;
import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.pagecontrol.ExtApiTabConfig;
import a8k.extapi_controler.utils.*; import a8k.extapi_controler.utils.*;
import a8k.service.db.LowerDeviceParameterDBService; import a8k.service.db.LowerDeviceParameterDBService;
import a8k.service.db.type.Parameter;
import a8k.service.db.utils.PosParameterReader; import a8k.service.db.utils.PosParameterReader;
import a8k.type.cfg.Pos2d; import a8k.type.cfg.Pos2d;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
@ -11,6 +12,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
/** /**
* HBOT二维码扫描坐标参数 * HBOT二维码扫描坐标参数
*/ */
@ -20,6 +23,35 @@ import org.springframework.stereotype.Component;
public class Hbot2DCodeScanPos { public class Hbot2DCodeScanPos {
static final Logger logger = LoggerFactory.getLogger(Hbot2DCodeScanPos.class); static final Logger logger = LoggerFactory.getLogger(Hbot2DCodeScanPos.class);
enum POS {
PBScanPos0("板夹仓扫码位置0"),
PBScanPos1("板夹仓扫码位置1"),
PBScanPos2("板夹仓扫码位置2"),
PBScanPos3("板夹仓扫码位置3"),
PBScanPos4("板夹仓扫码位置4"),
PBScanPos5("板夹仓扫码位置5"),
LittBS0("小缓冲液扫码位置0"),
LittBS1("小缓冲液扫码位置1"),
LittBS2("小缓冲液扫码位置2"),
LittBS3("小缓冲液扫码位置3"),
LittBS4("小缓冲液扫码位置4"),
LittBS5("小缓冲液扫码位置5"),
LarBS0("大缓冲液扫码位置0"),
LarBS1("大缓冲液扫码位置1"),
LarBS2("大缓冲液扫码位置2"),
LarBS3("大缓冲液扫码位置3"),
LarBS4("大缓冲液扫码位置4"),
LarBS5("大缓冲液扫码位置5"),
;
public final String chName;
POS(String chName) {
this.chName = chName;
}
}
@Resource @Resource
LowerDeviceParameterDBService lowerDeviceParameterDBService; LowerDeviceParameterDBService lowerDeviceParameterDBService;
@ -30,9 +62,14 @@ public class Hbot2DCodeScanPos {
@PostConstruct @PostConstruct
void initialize() { void initialize() {
posReader = lowerDeviceParameterDBService.getReader(this.getClass()); posReader = lowerDeviceParameterDBService.getReader(this.getClass());
for (POS pos : POS.values()) {
posReader.setParamChName(pos, pos.chName);
}
} }
public List<Parameter> getParams() {
return posReader.getParams();
}
public void setPBScanPosX(Integer X, Pos2d pos) { public void setPBScanPosX(Integer X, Pos2d pos) {
logger.info("setPBScanPos{} {}", X, pos); logger.info("setPBScanPos{} {}", X, pos);
@ -49,9 +86,7 @@ public class Hbot2DCodeScanPos {
posReader.setParam("LarBS" + X, pos); posReader.setParam("LarBS" + X, pos);
} }
public Pos2d getPBScanPosX(Integer X) {
return posReader.getPos("PBScanPos" + X, Pos2d.class);
}
public Pos2d getPBScanPosX(Integer X) {return posReader.getPos("PBScanPos" + X, Pos2d.class);}
public Pos2d getLittBSX(Integer X) { public Pos2d getLittBSX(Integer X) {
return posReader.getPos("LittBS" + X, Pos2d.class); return posReader.getPos("LittBS" + X, Pos2d.class);
@ -62,56 +97,52 @@ public class Hbot2DCodeScanPos {
} }
public void paramReset() {
logger.info("init param");
posReader.setVersion(nowParaVersion);
{
//板夹仓扫码位置
Pos2d pos0 = new Pos2d(-20, 1504);
int scanYSpacing = 265;
setPBScanPosX(0, pos0);
setPBScanPosX(1, pos0.add(0, scanYSpacing));
setPBScanPosX(2, pos0.add(0, scanYSpacing * 2));
setPBScanPosX(3, pos0.add(0, scanYSpacing * 3));
setPBScanPosX(4, pos0.add(0, scanYSpacing * 4));
setPBScanPosX(5, pos0.add(0, scanYSpacing * 5));
}
{
// 小缓冲液扫码位置
Pos2d pos0 = new Pos2d(741 + 579 + 333, 937 + 1097 + 29);
int xSpacing = 1230;
int ySpacing = 1250;
setLittBSX(0, pos0.add(0, 0));
setLittBSX(1, pos0.add(xSpacing, 0));
setLittBSX(2, pos0.add(xSpacing * 2, 0));
setLittBSX(3, pos0.add(0, ySpacing));
setLittBSX(4, pos0.add(xSpacing, ySpacing));
setLittBSX(5, pos0.add(xSpacing * 2, ySpacing));
}
{
// 大缓冲扫码位置
Pos2d LarBSPos0 = new Pos2d(4474 + 60 + 333, 1172 + 30 + 29);
int xSpacing = 280;
int ySpacing = 580;
setLarBSX(0, LarBSPos0.add(0, 0));
setLarBSX(1, LarBSPos0.add(xSpacing, 0));
setLarBSX(2, LarBSPos0.add(xSpacing * 2, 0));
setLarBSX(3, LarBSPos0.add(0, ySpacing));
setLarBSX(4, LarBSPos0.add(xSpacing, ySpacing));
setLarBSX(5, LarBSPos0.add(xSpacing * 2, ySpacing));
}
}
// public void paramReset() {
// logger.info("init param");
//
// {
// //板夹仓扫码位置
// Pos2d pos0 = new Pos2d(-20, 1504);
// int scanYSpacing = 265;
//
// setPBScanPosX(0, pos0);
// setPBScanPosX(1, pos0.add(0, scanYSpacing));
// setPBScanPosX(2, pos0.add(0, scanYSpacing * 2));
// setPBScanPosX(3, pos0.add(0, scanYSpacing * 3));
// setPBScanPosX(4, pos0.add(0, scanYSpacing * 4));
// setPBScanPosX(5, pos0.add(0, scanYSpacing * 5));
//
// }
//
// {
// // 小缓冲液扫码位置
// Pos2d pos0 = new Pos2d(741 + 579 + 333, 937 + 1097 + 29);
// int xSpacing = 1230;
// int ySpacing = 1250;
//
// setLittBSX(0, pos0.add(0, 0));
// setLittBSX(1, pos0.add(xSpacing, 0));
// setLittBSX(2, pos0.add(xSpacing * 2, 0));
// setLittBSX(3, pos0.add(0, ySpacing));
// setLittBSX(4, pos0.add(xSpacing, ySpacing));
// setLittBSX(5, pos0.add(xSpacing * 2, ySpacing));
// }
//
// {
// // 大缓冲扫码位置
// Pos2d LarBSPos0 = new Pos2d(4474 + 60 + 333, 1172 + 30 + 29);
// int xSpacing = 280;
// int ySpacing = 580;
//
// setLarBSX(0, LarBSPos0.add(0, 0));
// setLarBSX(1, LarBSPos0.add(xSpacing, 0));
// setLarBSX(2, LarBSPos0.add(xSpacing * 2, 0));
// setLarBSX(3, LarBSPos0.add(0, ySpacing));
// setLarBSX(4, LarBSPos0.add(xSpacing, ySpacing));
// setLarBSX(5, LarBSPos0.add(xSpacing * 2, ySpacing));
//
// }
// }
} }

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

@ -42,7 +42,6 @@ public class HbotConsumablePosMgr {
public void paramReset() { public void paramReset() {
logger.info("init param"); logger.info("init param");
posReader.setVersion(nowParaVersion);
posReader.setParam(HbotConsumablePosParam.TipGroup0_000Pos, new Pos3d()); posReader.setParam(HbotConsumablePosParam.TipGroup0_000Pos, new Pos3d());

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

@ -55,7 +55,6 @@ public class HbotFixPosMgr {
public void paramReset() { public void paramReset() {
logger.info("init param"); logger.info("init param");
posReader.setVersion(nowParaVersion);
posReader.setParam(Pos.DropTipPos.name(), new Pos3d(0, 0, 0)); posReader.setParam(Pos.DropTipPos.name(), new Pos3d(0, 0, 0));
posReader.setParam(Pos.DropLiquidPos.name(), new Pos3d(0, 0, 0)); posReader.setParam(Pos.DropLiquidPos.name(), new Pos3d(0, 0, 0));
} }

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

@ -42,7 +42,6 @@ public class HbotSamplePosMgr {
public void paramReset() { public void paramReset() {
logger.info("init param"); logger.info("init param");
posReader.setVersion(nowParaVersion);
} }
public List<Parameter> getParams() { public List<Parameter> getParams() {

11
src/main/java/a8k/service/app/devicedriver/pos/OptModulePosMgr.java

@ -2,6 +2,7 @@ package a8k.service.app.devicedriver.pos;
import a8k.service.db.LowerDeviceParameterDBService; import a8k.service.db.LowerDeviceParameterDBService;
import a8k.service.db.type.Parameter;
import a8k.service.db.utils.PosParameterReader; import a8k.service.db.utils.PosParameterReader;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -9,6 +10,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
/** /**
* HBOT二维码扫描坐标参数 * HBOT二维码扫描坐标参数
*/ */
@ -41,12 +44,18 @@ public class OptModulePosMgr {
@PostConstruct @PostConstruct
void initialize() { void initialize() {
posReader = lowerDeviceParameterDBService.getReader(this.getClass()); posReader = lowerDeviceParameterDBService.getReader(this.getClass());
for (POS pos : POS.values()) {
posReader.setParamChName(pos, pos.chName);
}
}
public List<Parameter> getParams() {
return posReader.getParams();
} }
public void paramReset() { public void paramReset() {
logger.info("init param"); logger.info("init param");
posReader.setVersion(nowParaVersion);
posReader.setParam(POS.PullerTargetPos, 1147); posReader.setParam(POS.PullerTargetPos, 1147);
posReader.setParam(POS.OptScanerDropPos, -349); posReader.setParam(POS.OptScanerDropPos, -349);
posReader.setParam(POS.OptScanerScandbyPos, 305); posReader.setParam(POS.OptScanerScandbyPos, 305);

64
src/main/java/a8k/service/app/devicedriver/pos/PlatesBoxPosMgr.java

@ -2,6 +2,7 @@ package a8k.service.app.devicedriver.pos;
import a8k.service.db.LowerDeviceParameterDBService; import a8k.service.db.LowerDeviceParameterDBService;
import a8k.service.db.type.Parameter;
import a8k.service.db.utils.PosParameterReader; import a8k.service.db.utils.PosParameterReader;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -9,35 +10,25 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
@Component @Component
public class PlatesBoxPosMgr { public class PlatesBoxPosMgr {
static final Logger logger = LoggerFactory.getLogger(PlatesBoxPosMgr.class); static final Logger logger = LoggerFactory.getLogger(PlatesBoxPosMgr.class);
enum POS { enum POS {
Ch0YPos,
YSpacing,
PushEndXPos,
Ch0YPos("通道0Y轴位置"),
Ch5YPos("通道5Y轴位置"),
PushEndXPos("推杆到位坐标"),
;
public final String chName;
POS(String chName) {
this.chName = chName;
}
} }
// @ExtApiParam(name = "板夹仓通道0位置", group = "板夹仓参数", order = ORDER.getPBCh0Pos)
// public Integer getPBCh0Pos() {
// return hpReader.getInteger("PBCh0Pos", -17);
// }
//
// @ExtApiParam(name = "板夹仓通道间距", group = "板夹仓参数", order = ORDER.getPBChSpacing)
// public Integer getPBChSpacing() {
// return hpReader.getInteger("PBChSpacing", 265);
// }
//
// @ExtApiParam(name = "推杆到位坐标", group = "板夹仓参数", order = ORDER.getPusherEndPos)
// public Integer getPusherEndPos() {
// return hpReader.getInteger("PusherEndPos", 1160);
// }
//
// @ExtApiParam(name = "推杆扫码开始坐标", group = "板夹仓参数", order = ORDER.getPusherScanStartPos)
// public Integer getPusherScanStartPos() {
// return hpReader.getInteger("PusherScanStartPos", 960);
// }
//
@Resource @Resource
LowerDeviceParameterDBService lowerDeviceParameterDBService; LowerDeviceParameterDBService lowerDeviceParameterDBService;
@ -48,25 +39,36 @@ public class PlatesBoxPosMgr {
@PostConstruct @PostConstruct
void initialize() { void initialize() {
posReader = lowerDeviceParameterDBService.getReader(this.getClass()); posReader = lowerDeviceParameterDBService.getReader(this.getClass());
for (POS pos : POS.values()) {
posReader.setParamChName(pos, pos.chName);
}
}
public List<Parameter> getParams(){
return posReader.getParams();
} }
public void paramReset() { public void paramReset() {
logger.info("init param"); logger.info("init param");
posReader.setVersion(nowParaVersion);
posReader.setParam(POS.Ch0YPos, -17); posReader.setParam(POS.Ch0YPos, -17);
posReader.setParam(POS.YSpacing, 265);
posReader.setParam(POS.Ch5YPos, 1308);
posReader.setParam(POS.PushEndXPos, 1160); posReader.setParam(POS.PushEndXPos, 1160);
} }
public Integer getCh0YPos() { public Integer getCh0YPos() {
return posReader.getPos(POS.Ch0YPos, Integer.class); return posReader.getPos(POS.Ch0YPos, Integer.class);
} }
public Integer getYSpacing() {
return posReader.getPos(POS.YSpacing, Integer.class);
public Integer getCh5YPos() {
return posReader.getPos(POS.Ch0YPos, Integer.class);
}
public Double getYSpacing() {
return (getCh5YPos() - getCh0YPos()) / 5.0;
}
public Integer getChXPos(int ch) {
return (int) (getCh0YPos() + ch * getYSpacing());
} }
public Integer getPushEndXPos() { public Integer getPushEndXPos() {
@ -77,8 +79,8 @@ public class PlatesBoxPosMgr {
posReader.setParam(POS.Ch0YPos, pos); posReader.setParam(POS.Ch0YPos, pos);
} }
public void setYSpacing(Integer pos) {
posReader.setParam(POS.YSpacing, pos);
public void setCh5YPos(Integer pos) {
posReader.setParam(POS.Ch5YPos, pos);
} }
public void setPushEndXPos(Integer pos) { public void setPushEndXPos(Integer pos) {

62
src/main/java/a8k/service/app/devicedriver/pos/TubeFeedingModulePosMgr.java

@ -10,53 +10,49 @@ import org.springframework.stereotype.Component;
@Component @Component
//horizontal scroll
public class TubeFeedingModulePosMgr { public class TubeFeedingModulePosMgr {
static final Logger logger = LoggerFactory.getLogger(TubeFeedingModulePosMgr.class); static final Logger logger = LoggerFactory.getLogger(TubeFeedingModulePosMgr.class);
// public final Integer ScanerClampingSVReleasePos = 100;
// public final Integer ScanerClampingSVClampingPos = 1000;
public enum POS { public enum POS {
TubeHolderEnterXPos, // 入料位置
TubeHolderExitXPos, // 出料位置
TubeHolderScanXPos, // 试管架扫描位置
Tube0ScanXPos, // 0号试管扫描位置
Tube0AltitJudgXPos, // 0试管高度判断位置
Tube0ExistJudgXPos, // 0试管存在判断位置
Tube0PreProcessXPos, // 0试管预处理位置
TubeScanServoTorque, // 试管扫描伺服力矩
TubeHolderEnterXPos("入料位置"), //
TubeHolderExitXPos("出料位置"), //
TubeHolderScanXPos("试管架扫描位置"), //
Tube0ScanXPos("0号试管扫描位置"), //
Tube0AltitJudgXPos("0试管高度判断位置"), //
Tube0ExistJudgXPos("0试管存在判断位置"), //
Tube0PreProcessXPos("0试管预处理位置"), //
TubeScanServoTorque("试管扫描伺服力矩"), //
;
final String chName;
POS(String chName) {
this.chName = chName;
}
} }
@Resource @Resource
LowerDeviceParameterDBService lowerDeviceParameterDBService; LowerDeviceParameterDBService lowerDeviceParameterDBService;
PosParameterReader posReader = null;
Integer nowParaVersion = 1;
PosParameterReader posReader = null;
//
// MotorTubeRackMoveCtrlService
//
@PostConstruct @PostConstruct
void initialize() { void initialize() {
posReader = lowerDeviceParameterDBService.getReader(this.getClass()); posReader = lowerDeviceParameterDBService.getReader(this.getClass());
Integer paraVersion = posReader.getVersion();
// if (!nowParaVersion.equals(paraVersion)) {
// logger.info("init param");
// posReader.setVersion(nowParaVersion);
// posReader.setParam(POS.TubeHolderEnterXPos, -46);
// posReader.setParam(POS.TubeHolderExitXPos, 3975);
// posReader.setParam(POS.TubeHolderScanXPos, 2202);
// posReader.setParam(POS.Tube0ScanXPos, 505);
// posReader.setParam(POS.Tube0AltitJudgXPos, 505);
// posReader.setParam(POS.Tube0ExistJudgXPos, 300);
// posReader.setParam(POS.Tube0PreProcessXPos, 1225);
// posReader.setParam(POS.TubeScanServoTorque, 500);
// }
for (POS pos : POS.values()) {
posReader.setParamChName(pos, pos.chName);
}
// if (!nowParaVersion.equals(paraVersion)) {
// logger.info("init param");
// posReader.setParam(POS.TubeHolderEnterXPos, -46);
// posReader.setParam(POS.TubeHolderExitXPos, 3975);
// posReader.setParam(POS.TubeHolderScanXPos, 2202);
// posReader.setParam(POS.Tube0ScanXPos, 505);
// posReader.setParam(POS.Tube0AltitJudgXPos, 505);
// posReader.setParam(POS.Tube0ExistJudgXPos, 300);
// posReader.setParam(POS.Tube0PreProcessXPos, 1225);
// posReader.setParam(POS.TubeScanServoTorque, 500);
// }
} }

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

@ -30,7 +30,6 @@ public class TubeHolderParamMgr {
void paramReset() { void paramReset() {
logger.info("init param"); logger.info("init param");
posReader.setVersion(nowParaVersion);
posReader.setParam("TubeSpacing", 200); posReader.setParam("TubeSpacing", 200);
} }

44
src/main/java/a8k/service/app/devicedriver/pos/TubePreProcesPosMgr.java

@ -19,7 +19,7 @@ public class TubePreProcesPosMgr {
YServoTakeTubePos("取试管位置"),// YServoTakeTubePos("取试管位置"),//
YServoShakePos("摇匀位置"),// YServoShakePos("摇匀位置"),//
ZMotorTakeHTubePos("取高试管位置"),// ZMotorTakeHTubePos("取高试管位置"),//
// ZMotorTakeSTubePos("取低试管位置"),//
// ZMotorTakeSTubePos("取低试管位置"),//
ZMotorShakeTubePos("摇匀放置位置"),// ZMotorShakeTubePos("摇匀放置位置"),//
ShakeClampMotorClampPos("试管夹紧位"),// ShakeClampMotorClampPos("试管夹紧位"),//
ShakeClampMotorReleasePos("摇匀臂"),// ShakeClampMotorReleasePos("摇匀臂"),//
@ -44,26 +44,28 @@ public class TubePreProcesPosMgr {
@PostConstruct @PostConstruct
void initialize() { void initialize() {
posReader = lowerDeviceParameterDBService.getReader(this.getClass()); posReader = lowerDeviceParameterDBService.getReader(this.getClass());
Integer paraVersion = posReader.getVersion();
// if (!nowParaVersion.equals(paraVersion)) {
// logger.info("init param");
// posReader.setVersion(nowParaVersion);
//
// posReader.setParam(POS.GripperServoOpenPos, 1600);
// posReader.setParam(POS.GripperServoClosePos, 1460);
// posReader.setParam(POS.GripperServoTakeCapPos, 1515);
//
// posReader.setParam(POS.YServoTakeTubePos, 3000);
// posReader.setParam(POS.YServoShakePos, 2130);
//
// posReader.setParam(POS.ZMotorTakeHTubePos, 739);
// posReader.setParam(POS.ZMotorShakeTubePos, 835);
//
// posReader.setParam(POS.ShakeClampMotorClampPos, 10);
// posReader.setParam(POS.ShakeClampMotorReleasePos, 90);
//
// posReader.setParam(POS.GripperRedundancySpacingForTubeCap, 20);
// }
for (POS pos : POS.values()) {
posReader.setParamChName(pos, pos.chName);
}
// if (!nowParaVersion.equals(paraVersion)) {
// logger.info("init param");
// posReader.setVersion(nowParaVersion);
//
// posReader.setParam(POS.GripperServoOpenPos, 1600);
// posReader.setParam(POS.GripperServoClosePos, 1460);
// posReader.setParam(POS.GripperServoTakeCapPos, 1515);
//
// posReader.setParam(POS.YServoTakeTubePos, 3000);
// posReader.setParam(POS.YServoShakePos, 2130);
//
// posReader.setParam(POS.ZMotorTakeHTubePos, 739);
// posReader.setParam(POS.ZMotorShakeTubePos, 835);
//
// posReader.setParam(POS.ShakeClampMotorClampPos, 10);
// posReader.setParam(POS.ShakeClampMotorReleasePos, 90);
//
// posReader.setParam(POS.GripperRedundancySpacingForTubeCap, 20);
// }
} }

30
src/main/java/a8k/service/app/devicedriver/pos/TurntablePosMgr.java

@ -1,6 +1,7 @@
package a8k.service.app.devicedriver.pos; package a8k.service.app.devicedriver.pos;
import a8k.service.db.LowerDeviceParameterDBService; import a8k.service.db.LowerDeviceParameterDBService;
import a8k.service.db.type.Parameter;
import a8k.service.db.utils.PosParameterReader; import a8k.service.db.utils.PosParameterReader;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -8,6 +9,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
/** /**
* HBOT二维码扫描坐标参数 * HBOT二维码扫描坐标参数
*/ */
@ -19,33 +22,44 @@ public class TurntablePosMgr {
* 转盘相关位置 * 转盘相关位置
*/ */
enum POS { enum POS {
PushPos0,
PullPos0,
DropLiquidPos0,
PosSpacing
PushPos0("入板位置"),
PullPos0("出板位置"),
DropLiquidPos0("滴液位置"),
PosSpacing("位置间隔"),
;
final String chName;
POS(String chName) {
this.chName = chName;
}
} }
@Resource @Resource
LowerDeviceParameterDBService lowerDeviceParameterDBService; LowerDeviceParameterDBService lowerDeviceParameterDBService;
PosParameterReader posReader = null; PosParameterReader posReader = null;
static Integer nowParaVersion = 0;
@PostConstruct @PostConstruct
void initialize() { void initialize() {
posReader = lowerDeviceParameterDBService.getReader(this.getClass()); posReader = lowerDeviceParameterDBService.getReader(this.getClass());
for (POS pos : POS.values()) {
posReader.setParamChName(pos, pos.chName);
}
} }
public void paramReset() { public void paramReset() {
logger.info("init param"); logger.info("init param");
posReader.setVersion(nowParaVersion);
posReader.setParam(POS.PushPos0, 1650); posReader.setParam(POS.PushPos0, 1650);
posReader.setParam(POS.PullPos0, 19700); posReader.setParam(POS.PullPos0, 19700);
posReader.setParam(POS.DropLiquidPos0, 1650 + 8950); posReader.setParam(POS.DropLiquidPos0, 1650 + 8950);
posReader.setParam(POS.PosSpacing, 1800); posReader.setParam(POS.PosSpacing, 1800);
} }
public List<Parameter> getParams() {
return posReader.getParams();
}
public Integer getPushPos0() { public Integer getPushPos0() {
return posReader.getPos(POS.PushPos0, Integer.class); return posReader.getPos(POS.PushPos0, Integer.class);
} }

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

@ -47,21 +47,22 @@ public class LowerDeviceParameterDBService {
newobj.chName = chName; newobj.chName = chName;
ZSqliteJdbcHelper.addObj(jdbcTemplate, tableName, tClass, newobj); ZSqliteJdbcHelper.addObj(jdbcTemplate, tableName, tClass, newobj);
} else { } else {
// {
// ZSqliteJdbcHelper.delete(jdbcTemplate, tableName, old.id);
// Parameter newobj = old.deepCopy();
// newobj.id = 0;
// ZSqliteJdbcHelper.addObj(jdbcTemplate, tableName, tClass, newobj);
// }
{
if (old.chName != null && old.chName.equals(chName)) {
return;
}
Parameter newobj = old.deepCopy();
newobj.chName = chName;
ZSqliteJdbcHelper.updateObj(jdbcTemplate, tableName, tClass, newobj);
}
// {
// ZSqliteJdbcHelper.delete(jdbcTemplate, tableName, old.id);
// Parameter newobj = old.deepCopy();
// newobj.id = 0;
// newobj.chName = chName;
// ZSqliteJdbcHelper.addObj(jdbcTemplate, tableName, tClass, newobj);
// }
{
if (old.chName != null && old.chName.equals(chName)) {
return;
}
Parameter newobj = old.deepCopy();
newobj.chName = chName;
ZSqliteJdbcHelper.updateObj(jdbcTemplate, tableName, tClass, newobj);
}
} }

7
src/main/java/a8k/service/db/utils/PosParameterReader.java

@ -47,13 +47,8 @@ public class PosParameterReader {
lowerDeviceParameterDBService.tryInitParam(service.getSimpleName(), key.name(), parm); lowerDeviceParameterDBService.tryInitParam(service.getSimpleName(), key.name(), parm);
} }
public Integer getVersion() {
return lowerDeviceParameterDBService.getParamVersion(service.getSimpleName());
}
public void setVersion(Integer version) {
lowerDeviceParameterDBService.setParamVersion(service.getSimpleName(), version);
}
public List<Parameter> getParams() { public List<Parameter> getParams() {
return lowerDeviceParameterDBService.getParams(service.getSimpleName()); return lowerDeviceParameterDBService.getParams(service.getSimpleName());

Loading…
Cancel
Save