Browse Source

update

tags/v0
zhaohe 9 months ago
parent
commit
10d5f27961
  1. 11
      src/main/java/a8k/service/app/devicectrl/ctrlservice/OptScanModuleCtrlService.java
  2. 7
      src/main/java/a8k/service/app/devicectrl/driver/OptModuleDriver.java
  3. 14
      src/main/java/a8k/service/app/devicectrl/param/calibration/OptModuleParamCalibration.java
  4. 6
      src/main/java/a8k/service/app/devicectrl/param/param_mgr/OptModuleExtParamsMgr.java

11
src/main/java/a8k/service/app/devicectrl/ctrlservice/OptScanModuleCtrlService.java

@ -52,6 +52,7 @@ public class OptScanModuleCtrlService {
TurnableMoveCtrlService turnableMoveCtrlService;
public void pullPlate(IncubatorPos turntablePosIndex) throws AppException {
turnableMoveCtrlService.trunableMoveToPullPos(turntablePosIndex);
stepMotorCtrlDriver.stepMotorEasyMoveToBlock(StepMotorMId.OptModScannerM, optModuleParamsMgr.getOptScanerScandbyPos(), overtime);
@ -68,24 +69,28 @@ public class OptScanModuleCtrlService {
public Integer[] startOptScan(A8kOptType optType, Integer rawScanGain) throws AppException {
Integer forwardScanPos = optModuleExtParamsMgr.getOptScanStartPos(optType);
Integer backwardScanPos = forwardScanPos - 1200;
// Double scanGain = optModuleExtParamsMgr.getScanGain(optType);
// Integer rawScanGain = OptGainConvert.scanerToRawGain(optType, scanGain);
Integer lasterGain = optModuleExtParamsMgr.getOptEmissionIntensity(optType);
switch (optType) {
case TOPT -> {
optModuleDriver.setReg(OptModuleRegIndex.kreg_a8k_opt_t_pos_offset, forwardScanPos);
optModuleDriver.setReg(OptModuleRegIndex.kreg_a8k_opt_t_reverse_scan_pos_offset, forwardScanPos - 1200);
optModuleDriver.setReg(OptModuleRegIndex.kreg_a8k_opt_t_reverse_scan_pos_offset, backwardScanPos);
optModuleDriver.setReg(OptModuleRegIndex.kreg_a8k_opt_scan_pointnum, 1200);
}
case FOPT -> {
optModuleDriver.setReg(OptModuleRegIndex.kreg_a8k_opt_f_pos_offset, forwardScanPos);
optModuleDriver.setReg(OptModuleRegIndex.kreg_a8k_opt_f_reverse_scan_pos_offset, forwardScanPos - 1200);
optModuleDriver.setReg(OptModuleRegIndex.kreg_a8k_opt_f_reverse_scan_pos_offset, backwardScanPos);
optModuleDriver.setReg(OptModuleRegIndex.kreg_a8k_opt_scan_pointnum, 1200);
}
}
stepMotorCtrlDriver.stepMotorEasyMoveToBlock(StepMotorMId.OptModScannerM, forwardScanPos, overtime);
switch (optType) {
case TOPT -> optModuleDriver.optTStartScan(OptScanDirection.FORWARD, lasterGain, rawScanGain);
case FOPT -> optModuleDriver.optFStartScan(OptScanDirection.FORWARD, lasterGain, rawScanGain);

7
src/main/java/a8k/service/app/devicectrl/driver/OptModuleDriver.java

@ -1,5 +1,6 @@
package a8k.service.app.devicectrl.driver;
import a8k.OS;
import a8k.hardware.A8kCanBusService;
import a8k.hardware.type.a8kcanprotocol.CmdId;
import a8k.hardware.type.a8kcanprotocol.MId;
@ -24,13 +25,19 @@ public class OptModuleDriver {
@Resource
A8kCanBusService canBus;
public void optTStartScan(OptScanDirection scanDirection, Integer lasterGain, Integer scanGain) throws AppException {
canBus.callcmd(MId.OptMod, CmdId.a8k_opt_v2_t_start_scan, scanDirection.getInteger(), lasterGain, scanGain);
//TODO: 2024-10-26 zhaohe,修改底层光学结束上报一条完成事件
OS.forceSleep(6000);
canBus.waitForMod(MId.OptMod, actionOvertime);
}
public void optFStartScan(OptScanDirection scanDirection, Integer lasterGain, Integer scanGain) throws AppException {
canBus.callcmd(MId.OptMod, CmdId.a8k_opt_v2_f_start_scan, scanDirection.getInteger(), lasterGain, scanGain);
//TODO: 2024-10-26 zhaohe,修改底层光学结束上报一条完成事件
OS.forceSleep(9000);
canBus.waitForMod(MId.OptMod, actionOvertime);
}

14
src/main/java/a8k/service/app/devicectrl/param/calibration/OptModuleParamCalibration.java

@ -92,7 +92,7 @@ public class OptModuleParamCalibration {
* From: 0号仓
* TrunablePos:0号仓到
*/
@ExtApiFn(name = "推板到光学模组", group = "测试工具", order = 100)
@ExtApiFn(name = "推板到光学模组(自动丢弃当前板)", group = "测试工具", order = 100)
public void pushOnePlateToOptModule() throws AppException {
//先清空当前通道
optScanModuleCtrlService.dropPlate();
@ -104,7 +104,7 @@ public class OptModuleParamCalibration {
optScanModuleCtrlService.pullPlate(IncubatorPos.SPACE01);
}
@ExtApiFn(name = "拉板到光学模组", group = "测试工具", order = 101)
@ExtApiFn(name = "丢板", group = "测试工具", order = 101)
public void dropPlate() throws AppException {
optScanModuleCtrlService.dropPlate();
}
@ -145,7 +145,10 @@ public class OptModuleParamCalibration {
//FOptScanAmplVal
@ExtApiFn(name = "设置F光学扫描偏移", group = "F光学", order = 300)
public void setFOptScanShift(Integer shift) {
public void setFOptScanShift(Integer shift) throws AppException {
if (shift < 0) {
throw AppException.of("扫描偏移量必须大于0");
}
optModuleExtParamsMgr.setOptParam(OptModuleExtParam.FOptScanShift, shift);
}
@ -172,7 +175,10 @@ public class OptModuleParamCalibration {
//
@ExtApiFn(name = "设置T光学扫描偏移", group = "T光学", order = 400)
public void setTOptScanShift(Integer shift) {
public void setTOptScanShift(Integer shift) throws AppException {
if (shift < 0) {
throw AppException.of("扫描偏移量必须大于0");
}
optModuleExtParamsMgr.setOptParam(OptModuleExtParam.TOptScanShift, shift);
}

6
src/main/java/a8k/service/app/devicectrl/param/param_mgr/OptModuleExtParamsMgr.java

@ -9,6 +9,7 @@ import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
/**
* HBOT二维码扫描坐标参数
@ -35,8 +36,11 @@ public class OptModuleExtParamsMgr extends ParamMgr {
case FOPT -> getParam(OptModuleExtParam.FOptScanShift, Integer.class);
};
Assert.notNull(shift, "扫描偏移量不能为空");
Assert.isTrue(shift > 0, "扫描偏移量必须大于0");
Integer scanStartPos = getParam(OptModuleExtParam.OptScanRefPos, Integer.class);
scanStartPos = scanStartPos + shift;
scanStartPos = scanStartPos - shift;
return scanStartPos;
}

Loading…
Cancel
Save