Browse Source

update

tags/v0
zhaohe 10 months ago
parent
commit
1a1b390b58
  1. BIN
      app.db
  2. 6
      src/main/java/a8k/service/app/appctrl/AppDeviceCtrlService.java
  3. 8
      src/main/java/a8k/service/app/devicedriver/basectrl/HbotBaseMoveControler.java
  4. 98
      src/main/java/a8k/service/app/devicedriver/calibration/Hbot2DCodeScanPosCalibration.java
  5. 19
      src/main/java/a8k/service/app/devicedriver/ctrl/ConsumablesScanCtrl.java
  6. 24
      src/main/java/a8k/service/app/devicedriver/ctrl/DeviceInitCtrlService.java
  7. 14
      src/main/java/a8k/service/db/utils/PosParameterReader.java
  8. 5
      src/main/java/a8k/service/debug/AppDebugHelperService.java
  9. 1
      src/main/resources/application-dev.yml
  10. 4
      src/main/resources/application-zhaohe_pc.yml

BIN
app.db

6
src/main/java/a8k/service/app/appctrl/AppDeviceCtrlService.java

@ -44,14 +44,12 @@ public class AppDeviceCtrlService {
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
@ExtApiFn(name = "设备初始化前检查", group = "设备初始化")
public List<CheckResult> checkBeforeInitDevice() throws AppException {
return deviceInitializationModule.checkBeforeInitDevice();
}
@ExtApiFn(name = "设备初始化(阻塞接口)", group = "设备初始化")
public void initDevice() throws AppException {
deviceInitializationModule.deviceMoveToZero();
public List<CheckResult> initDevice() throws AppException {
return deviceInitializationModule.deviceMoveToZero();
}

8
src/main/java/a8k/service/app/devicedriver/basectrl/HbotBaseMoveControler.java

@ -31,14 +31,16 @@ public class HbotBaseMoveControler {
HbotModule hbotModule;
Integer ao = 20000;
public void hbotMoveTo(Pos3d targetPos) throws AppException {
logger.info("hbotCheckAndMoveTo:{}", targetPos);
public void checkBeforeMove() throws AppException {
// 检查盖板是否关闭
if (!canBus.getIOState(IOId.PlateBoxCoverClosurePPS)) {
throw new AppException(A8kEcode.APPE_PLATE_BOX_NOT_COVER);
}
}
public void hbotMoveTo(Pos3d targetPos) throws AppException {
logger.info("hbotCheckAndMoveTo:{}", targetPos);
checkBeforeMove();
boolean zEnable = true;
boolean hbotEnable = canBus.moduleGetReg(MId.HbotM, RegIndex.kreg_xyrobot_is_enable) == 1;

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

@ -9,16 +9,22 @@ import a8k.service.app.devicedriver.basectrl.HbotBaseMoveControler;
import a8k.service.app.devicedriver.basectrl.HbotModule;
import a8k.service.app.devicedriver.basectrl.PipetteCtrlModule;
import a8k.service.app.devicedriver.basectrl.CodeScaner;
import a8k.service.app.devicedriver.ctrl.ConsumablesScanCtrl;
import a8k.service.app.devicedriver.param.Hbot2DCodeScanPos;
import a8k.type.ConsumableGroup;
import a8k.type.ConsumableScanRawResult;
import a8k.type.exception.AppException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import jakarta.annotation.Resource;
import org.slf4j.Logger;
import org.springframework.stereotype.Component;
@ExtApiTab(cfg = ExtApiTabConfig.Hbot2DCodeScanPosCalibration)
@Component
public class Hbot2DCodeScanPosCalibration {
static Logger logger = org.slf4j.LoggerFactory.getLogger(Hbot2DCodeScanPosCalibration.class);
@Resource
A8kCanBusService canBus;
@ -30,35 +36,14 @@ public class Hbot2DCodeScanPosCalibration {
HbotModule hbotModule;
@Resource
HbotBaseMoveControler hbotBaseMoveControler;
@Resource
ConsumablesScanCtrl consumablesScanCtrl;
@Resource
Hbot2DCodeScanPos hbot2DCodeScanPos;
@ExtApiFn(name = "归零", group = "测试工具", order = 0)
public void deviceReset() throws AppException {
pipetteCtrlModule.zMotorEnable(1);
hbotModule.enable(1);
pipetteCtrlModule.zMotorMoveZeroBlock();
hbotModule.moveToZeroBlock();
}
public void disableMotor() throws AppException {
}
@ExtApiFn(name = "扫码测试(当前位置)", group = "测试工具", order = 0)
public String openCodeTryScaner() throws AppException {
return codeScaner.pipetteModCodeScannerScanCode();
}
@ExtApiFn(name = "扫码测试(全部位置)", group = "测试工具", order = 0)
public String scanAll() throws AppException {
return codeScaner.pipetteModCodeScannerScanCode();
}
@ExtApiFn(name = "获取所有坐标", order = 1)
@ExtApiFn(name = "获取所有坐标",group = "基础", order = 1)
public ObjectNode getPoss() throws AppException {
ObjectMapper mapper = new ObjectMapper();
@ -81,8 +66,67 @@ public class Hbot2DCodeScanPosCalibration {
return node;
}
@ExtApiFn(name = "扫码", order = 2)
public void scan(String pos) throws AppException {
// 测试工具
@ExtApiFn(name = "归零", group = "测试工具", order = 11)
public void deviceReset() throws AppException {
enableModule();
hbotBaseMoveControler.checkBeforeMove();
pipetteCtrlModule.zMotorMoveZeroBlock();
hbotModule.moveToZeroBlock();
}
@ExtApiFn(name = "使能相关模块", group = "测试工具", order = 12)
public void enableModule() throws AppException {
pipetteCtrlModule.zMotorEnable(1);
hbotModule.enable(1);
}
@ExtApiFn(name = "失能相关模块", group = "测试工具", order = 13)
public void disableModule() throws AppException {
pipetteCtrlModule.zMotorEnable(0);
hbotModule.enable(0);
}
@ExtApiFn(name = "扫码", group = "测试工具", order = 14)
public String scanCode() throws AppException {
return codeScaner.pipetteModCodeScannerScanCode();
}
//
@ExtApiFn(name = "设置当前位置为<板夹>扫码位", group = "标定", order = 21)
public void setPBScanPos(ConsumableGroup group) throws AppException {
hbot2DCodeScanPos.setPBScanPosX(group.off, hbotModule.readPos());
}
@ExtApiFn(name = "设置当前位置为<小缓冲>扫码位", group = "标定", order = 22)
public void setLittBSScanPos(ConsumableGroup group) throws AppException {
hbot2DCodeScanPos.setLittBSX(group.off, hbotModule.readPos());
}
@ExtApiFn(name = "设置当前位置为<大缓冲>扫码位", group = "标定", order = 23)
public void setLarBSScanPos(ConsumableGroup group) throws AppException {
hbot2DCodeScanPos.setLarBSX(group.off, hbotModule.readPos());
}
@ExtApiFn(name = "扫码测试(全部位置)", group = "校验", order = 31)
public ConsumableScanRawResult scanAll() throws AppException {
return consumablesScanCtrl.doScanConsumablesAction();
}
@ExtApiFn(name = "扫描板夹仓X", group = "校验", order = 31)
public String scanPBScanPos(ConsumableGroup group) throws AppException {
return consumablesScanCtrl.scanPB(group.off);
}
@ExtApiFn(name = "扫描小缓冲液X", group = "校验", order = 32)
public String scanLittBSScanPos(ConsumableGroup group) throws AppException {
return consumablesScanCtrl.scanLittBS(group.off);
}
@ExtApiFn(name = "扫描大瓶缓冲液X)", group = "校验", order = 33)
public String scanLarBSScanPos(ConsumableGroup group) throws AppException {
return consumablesScanCtrl.scanLarBS(group.off);
}

19
src/main/java/a8k/service/app/devicedriver/ctrl/ConsumablesScanCtrl.java

@ -17,16 +17,13 @@ import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
@Component
@ExtApiTab(cfg = ExtApiTabConfig.HbotControlService)
public class ConsumablesScanCtrl {
@Resource
ActionReactorService ar;
ActionReactorService ar;
@Resource
GStateService stateMgrService;
@Resource
Hbot2DCodeScanPos hbotScanPos;
Hbot2DCodeScanPos hbotScanPos;
@Resource
CodeScaner codeScaner;
@Resource
@ -42,31 +39,27 @@ public class ConsumablesScanCtrl {
}
private String scanPB(int ch) throws AppException {
public String scanPB(int ch) throws AppException {
Pos2d pos = hbotScanPos.getPBScanPosX(ch);
hbotMoveTo(pos);
return scan2dCode();
}
private String scanLittBS(int ch) throws AppException {
public String scanLittBS(int ch) throws AppException {
Pos2d pos = hbotScanPos.getLittBSX(ch);
hbotMoveTo(pos);
return scan2dCode();
}
private String scanLarBS(int ch) throws AppException {
public String scanLarBS(int ch) throws AppException {
Pos2d pos = hbotScanPos.getLarBSX(ch);
hbotMoveTo(pos);
return scan2dCode();
}
@ExtApiFn(name = "扫描耗材")
public ConsumableScanRawResult doScanConsumablesAction() throws AppException {
if (!stateMgrService.isDeviceInited()) {
throw new AppException(A8kEcode.APPE_DEVICE_NOT_INITED);
}
ConsumableScanRawResult result = new ConsumableScanRawResult();
for (int i = 0; i < 6; i++) {
int finalI = i;
@ -81,7 +74,6 @@ public class ConsumablesScanCtrl {
ar.dosome("扫描耗材-大瓶缓冲液", () -> result.ch[finalI].larBSScanResult = scanLarBS(finalI));
}
hbotMoveTo(new Pos2d(0, 0));
/*
* 清空 result 中的所有\r
*/
@ -99,7 +91,6 @@ public class ConsumablesScanCtrl {
return result;
}
@ExtApiFn(name = "扫描单个耗材")
public ConsumableOneChResult doScanOneCh(Integer ch) throws AppException {
ConsumableOneChResult result = new ConsumableOneChResult(ch);
ar.dosome("扫描耗材-板夹0", () -> result.PBScanResult = scanPB(ch));

24
src/main/java/a8k/service/app/devicedriver/ctrl/DeviceInitCtrlService.java

@ -69,29 +69,22 @@ public class DeviceInitCtrlService {
return results;
}
public Boolean checkBeforeInitDevicePass() throws AppException {
List<CheckResult> results = checkBeforeInitDevice();
for (CheckResult result : results) {
if (!result.pass) {
return false;
}
}
return true;
}
//
public void deviceMoveToZero() throws AppException {
public List<CheckResult> deviceMoveToZero() throws AppException {
List<CheckResult> results = checkBeforeInitDevice();
if (appDebugHelper.isDebug()) {
appDebugHelper.doVirtualThings("初始化设备", 3);
gstate.setDeviceInited(true);
return;
return results;
}
Boolean suc = checkBeforeInitDevicePass();
if (!suc) {
throw new AppException(A8kEcode.APPE_CHECK_POINT_CHECK_FAIL);
for (CheckResult result : results) {
if (!result.pass) {
return results;
}
}
//进出料初始化
actionReactor.dosome("入料平移电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.FeedingModXM, actionOvertime));
actionReactor.dosome("摇匀模组-扫码夹紧舵机回零", () -> canBus.miniServoMoveToBlock(MId.ShakeModTubeScanerClampingSV, 20, actionOvertime));
@ -112,6 +105,7 @@ public class DeviceInitCtrlService {
//转盘归零
actionReactor.dosome("转盘回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.IncubatorRotateCtrlM, actionOvertime));
gstate.setDeviceInited(true);
return results;
}
}

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

@ -4,27 +4,27 @@ import a8k.service.db.PosParameterDBService;
import jakarta.annotation.Resource;
public class PosParameterReader {
Class<?> tClass;
Class<?> service;
PosParameterDBService posParameterDBService;
public PosParameterReader(PosParameterDBService dbservice, Class<?> tClass) {
public PosParameterReader(PosParameterDBService dbservice, Class<?> service) {
posParameterDBService = dbservice;
this.tClass = tClass;
this.service = service;
}
public <T> T getPos(String key, Class<T> tClass) {
return posParameterDBService.getParam(tClass.getSimpleName(), key, tClass);
return posParameterDBService.getParam(this.service.getSimpleName(), key, tClass);
}
public void updatePos(String key, Object pos) {
posParameterDBService.updateParam(tClass.getSimpleName(), key, pos);
posParameterDBService.updateParam(service.getSimpleName(), key, pos);
}
public Integer getVersion() {
return posParameterDBService.getParamVersion(tClass.getSimpleName());
return posParameterDBService.getParamVersion(service.getSimpleName());
}
public void setVersion(Integer version) {
posParameterDBService.setParamVersion(tClass.getSimpleName(), version);
posParameterDBService.setParamVersion(service.getSimpleName(), version);
}
}

5
src/main/java/a8k/service/debug/AppDebugHelperService.java

@ -50,6 +50,7 @@ import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
@ -61,7 +62,9 @@ import java.util.List;
public class AppDebugHelperService {
private static final Logger logger = LoggerFactory.getLogger(AppDebugHelperService.class);
Boolean debugFlag = true;
@Value("${AppDebugHelperService.debug:true}")
boolean debugFlag ;
@Resource
P01_hsCRR p01_hscrr;

1
src/main/resources/application-dev.yml

@ -5,7 +5,6 @@ spring:
datasource:
url: jdbc:sqlite:D:/java_workspace/a8000/app.db
driver-class-name: org.sqlite.JDBC
device:
connections:
- name : zcancmder

4
src/main/resources/application-zhaohe_pc.yml

@ -13,3 +13,7 @@ device:
enable : true
type : ZcancmderWebsocket
uri: ws://192.168.8.10:19005
AppDebugHelperService:
debug: false
Loading…
Cancel
Save