Browse Source

update

tags/v0
zhaohe 10 months ago
parent
commit
6b93a610e5
  1. BIN
      app.db
  2. 2
      src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java
  3. 11
      src/main/java/a8k/service/app/devicedriver/calibration/TubeFeedingModulePosCalibration.java
  4. 8
      src/main/java/a8k/service/app/devicedriver/calibration/TubePreProcesPosCalibration.java
  5. 17
      src/main/java/a8k/service/app/devicedriver/ctrl/TubeTubeFeedingModule.java
  6. 31
      src/main/java/a8k/service/app/devicedriver/pos/TubeFeedingModulePosMgr.java
  7. 11
      src/main/java/a8k/service/app/devicedriver/pos/TubePreProcesPosMgr.java
  8. 8
      src/main/java/a8k/service/db/LowerDeviceParameterDBService.java
  9. 3
      src/main/java/a8k/service/db/utils/PosParameterReader.java
  10. 11
      src/main/java/a8k/utils/ZSqliteJdbcHelper.java

BIN
app.db

2
src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java

@ -15,7 +15,7 @@ public enum ExtApiTabConfig {
Hbot2DCodeScanPosCalibration("校准.耗材扫描校准", true),
TubeScanPosCalibration("校准.试管扫描校准", true),
TubeFeedingModulePosCalibration("校准.试管入料校准", true),
TubePreProcesPosCalibration("校准.试管预处理校准", true),

11
src/main/java/a8k/service/app/devicedriver/calibration/TubeScanPosCalibration.java → src/main/java/a8k/service/app/devicedriver/calibration/TubeFeedingModulePosCalibration.java

@ -17,9 +17,9 @@ import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
@ExtApiTab(cfg = ExtApiTabConfig.TubeScanPosCalibration)
@ExtApiTab(cfg = ExtApiTabConfig.TubeFeedingModulePosCalibration)
@Component
public class TubeScanPosCalibration {
public class TubeFeedingModulePosCalibration {
@Resource
TubeFeedingModulePosMgr tubeScanPosMgr;
@ -33,7 +33,7 @@ public class TubeScanPosCalibration {
@Resource
MiniServoControler miniServoControler;
@Resource
StepMotorControler stepMotorControler;
StepMotorControler stepMotorControler;
private Integer readFeedingModXMPos() throws AppException {
stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModXM, 1);
@ -122,6 +122,11 @@ public class TubeScanPosCalibration {
return tubeTubeFeedingModule.scanTubeHodler();
}
@ExtApiFn(name = "移动试管X到处理位", group = "校验", order = 33)
public void moveTubeXToPreProcessPos(Integer xtube) throws AppException {
tubeTubeFeedingModule.moveTubeToPreProcessPos(xtube);
}
@ExtApiFn(name = "设置<试管扫描伺服力矩(100-1000)>", group = "其他", order = 41)
public void setTubeScanServoTorque(Integer torque) throws AppException {
tubeScanPosMgr.setTubeScanServoTorque(torque);

8
src/main/java/a8k/service/app/devicedriver/calibration/TubePreProcesPosCalibration.java

@ -78,10 +78,14 @@ public class TubePreProcesPosCalibration {
//XProcessPos: 标定,验证
//ShakeClamp : 标定,校验
//
// 夹爪标定,校准,校验
//
@ExtApiFn(name = "设置当前位置为<参考点>", group = "夹爪", order = 21)
public Integer gripperSVSetCurrentPosAsRef() throws AppException {
miniServoControler.miniServoSetCurPos(MiniServoMId.ShakeModGripperSV, 100);
return 100;
miniServoControler.miniServoSetCurPos(MiniServoMId.ShakeModGripperSV, 1800);
return 1800;
}
@ExtApiFn(name = "<标定>当前点为<抓手张开位置>", group = "夹爪", order = 22)

17
src/main/java/a8k/service/app/devicedriver/ctrl/TubeTubeFeedingModule.java

@ -45,7 +45,7 @@ public class TubeTubeFeedingModule {
}
@Resource
AppEventBusService ebus;
AppEventBusService ebus;
@Resource
A8kCanBusService canBus;
@Resource
@ -53,13 +53,13 @@ public class TubeTubeFeedingModule {
@Resource
TubeHolderParamMgr tubeHolderParamMgr;
@Resource
CodeScaner codeScaner;
CodeScaner codeScaner;
@Resource
TubeTransportControler tubeTransportControler;
TubeTransportControler tubeTransportControler;
@Resource
MiniServoControler miniServoControler;
MiniServoControler miniServoControler;
@Resource
StepMotorControler stepMotorControler;
StepMotorControler stepMotorControler;
private Boolean isTubeExist() throws AppException {
@ -107,6 +107,7 @@ public class TubeTubeFeedingModule {
/*=========================================================================================
* 片段
*========================================================================================*/
/**
* 移动试管架到入口位置
*/
@ -122,6 +123,11 @@ public class TubeTubeFeedingModule {
tubeTransportControler.moveTubeRackTo(stp.getTubeHolderExitXPos() - 10, TargetPosMeasureDirection.NOTCARE, false);
}
public void moveTubeToPreProcessPos(Integer tubeIndex) throws AppException {
tubeTransportControler.moveTubeRackTo(stp.getTube0PreProcessXPos() + tubeIndex * tubeHolderParamMgr.getTubeSpacing(), TargetPosMeasureDirection.POSITIVE, false);
}
/**
* 移动<试管架>到出口位置
*/
@ -297,4 +303,5 @@ public class TubeTubeFeedingModule {
return result;
}
}

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

@ -24,14 +24,16 @@ public class TubeFeedingModulePosMgr {
Tube0ScanXPos, // 0号试管扫描位置
Tube0AltitJudgXPos, // 0试管高度判断位置
Tube0ExistJudgXPos, // 0试管存在判断位置
Tube0PreProcessXPos, // 0试管预处理位置
TubeScanServoTorque,// 试管扫描伺服力矩
}
@Resource
LowerDeviceParameterDBService lowerDeviceParameterDBService;
PosParameterReader posReader = null;
Integer nowParaVersion = 0;
Integer nowParaVersion = 1;
//
// MotorTubeRackMoveCtrlService
@ -42,26 +44,26 @@ public class TubeFeedingModulePosMgr {
posReader = lowerDeviceParameterDBService.getReader(this.getClass());
Integer paraVersion = posReader.getVersion();
if (!nowParaVersion.equals(paraVersion)) {
paramReset();
logger.info("init param");
posReader.setVersion(nowParaVersion);
posReader.updatePos(POS.TubeHolderEnterXPos, -46);
posReader.updatePos(POS.TubeHolderExitXPos, 3975);
posReader.updatePos(POS.TubeHolderScanXPos, 2202);
posReader.updatePos(POS.Tube0ScanXPos, 505);
posReader.updatePos(POS.Tube0AltitJudgXPos, 505);
posReader.updatePos(POS.Tube0ExistJudgXPos, 300);
posReader.updatePos(POS.Tube0PreProcessXPos, 1225);
posReader.updatePos(POS.TubeScanServoTorque, 500);
}
}
void paramReset() {
logger.info("init param");
posReader.setVersion(nowParaVersion);
posReader.updatePos(POS.TubeHolderEnterXPos, -46);
posReader.updatePos(POS.TubeHolderExitXPos, 3975);
posReader.updatePos(POS.TubeHolderScanXPos, 2202);
posReader.updatePos(POS.Tube0ScanXPos, 505);
posReader.updatePos(POS.Tube0AltitJudgXPos, 505);
posReader.updatePos(POS.Tube0ExistJudgXPos, 300);
posReader.updatePos(POS.TubeScanServoTorque, 500);
}
public Integer getParam(POS pos) {
return posReader.getPos(pos, Integer.class);
}
public Integer getTube0PreProcessXPos() {return getParam(POS.Tube0PreProcessXPos);}
public Integer getTubeHolderEnterXPos() {
return getParam(POS.TubeHolderEnterXPos);
}
@ -90,6 +92,8 @@ public class TubeFeedingModulePosMgr {
return getParam(POS.TubeScanServoTorque);
}
public void setTube0PreProcessXPos(Integer value) {posReader.updatePos(POS.Tube0PreProcessXPos, value);}
public void setTubeHolderEnterXPos(Integer value) {
posReader.updatePos(POS.TubeHolderEnterXPos, value);
}
@ -118,4 +122,5 @@ public class TubeFeedingModulePosMgr {
public void setTubeScanServoTorque(Integer value) {
posReader.updatePos(POS.TubeScanServoTorque, value);
}
}

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

@ -41,7 +41,7 @@ public class TubePreProcesPosMgr {
LowerDeviceParameterDBService lowerDeviceParameterDBService;
PosParameterReader posReader = null;
Integer nowParaVersion = 0;
Integer nowParaVersion = 1;
@PostConstruct
void initialize() {
@ -52,11 +52,10 @@ public class TubePreProcesPosMgr {
posReader.setVersion(nowParaVersion);
// 677,450,310,355
// 1800,
posReader.updatePos(POS.GripperServoOpenPos, 450);
posReader.updatePos(POS.GripperServoClosePos, 310);
posReader.updatePos(POS.GripperServoTakeCapPos, 355);
// 1800,1573,1433,1388
posReader.updatePos(POS.GripperServoOpenPos, 1573);
posReader.updatePos(POS.GripperServoClosePos, 1433);
posReader.updatePos(POS.GripperServoTakeCapPos, 1388);
posReader.updatePos(POS.YServoTakeTubePos, 3080);
posReader.updatePos(POS.YServoShakePos, 2130);
posReader.updatePos(POS.YServoZeroYPos, 300);

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

@ -78,12 +78,18 @@ public class LowerDeviceParameterDBService {
}
}
public void tryInitParam(String service, String key, Object pos) {
if (getParam(service, key, Object.class) == null) {
updateParam(service, key, pos);
}
}
public Integer getParamVersion(String service) {
return getParam(service, "VERSION", Integer.class);
}
public void setParamVersion(String service, Integer version) {
updateParam(service, "VERSION", 0);
updateParam(service, "VERSION", version);
}
public PosParameterReader getReader(Class<?> type) {

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

@ -25,7 +25,10 @@ public class PosParameterReader {
public void updatePos(Enum<?> key, Object pos) {
lowerDeviceParameterDBService.updateParam(service.getSimpleName(), key.name(), pos);
}
public void tryInitParam(Enum<?> key, Object parm) {
lowerDeviceParameterDBService.tryInitParam(service.getSimpleName(), key.name(), parm);
}
public Integer getVersion() {

11
src/main/java/a8k/utils/ZSqliteJdbcHelper.java

@ -37,8 +37,8 @@ public class ZSqliteJdbcHelper {
}
static public void createTable(JdbcTemplate jdbcTemplate, String tableName, Class<?> tClass) {
StringBuilder sql = new StringBuilder("create table " + tableName + " (");
Boolean hasId = false;
StringBuilder sql = new StringBuilder("create table " + tableName + " (");
Boolean hasId = false;
for (java.lang.reflect.Field field : tClass.getDeclaredFields()) {
if (field.getName().equals("id")) {
hasId = true;
@ -62,7 +62,7 @@ public class ZSqliteJdbcHelper {
sql.append("text,");
}
}
if(!hasId) {
if (!hasId) {
throw new RuntimeException("id field not found in class " + tClass.getName());
}
@ -186,11 +186,12 @@ public class ZSqliteJdbcHelper {
sql.append(field.getName()).append(" = ?,");
}
sql.deleteCharAt(sql.length() - 1).append(" where id = ?");
System.out.println(sql.toString());
List<Object> args = buildArgs(tClass, obj);
args.add(id);
// System.out.println(sql);
// System.out.println(args);
jdbcTemplate.update(sql.toString(), args.toArray());
}
}
Loading…
Cancel
Save